package org.example.atry.myservlet;

import jakarta.servlet.GenericServlet;
import jakarta.servlet.ServletException;
import jakarta.servlet.ServletRequest;
import jakarta.servlet.ServletResponse;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpSession;
import org.json.JSONObject;

import java.io.IOException;
import java.io.PrintWriter;

@WebServlet (urlPatterns = {"/servlet"})
public class servlet extends GenericServlet {
    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        HttpServletRequest request = (HttpServletRequest) servletRequest;
        HttpServletResponse response = (HttpServletResponse) servletResponse;
        // 设置允许跨域的头部信息
        response.setHeader("Access-Control-Allow-Origin", "*");
        response.setHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE");
        response.setHeader("Access-Control-Allow-Headers", "Content-Type");
        response.setHeader("Access-Control-Max-Age", "3600");
        String selct = request.getParameter("select");
        String chaxun = request.getParameter("chaxun");

       // String check=request.getParameter("check");
        String radio=request.getParameter("radio");

        if(selct.equals("one")&&chaxun!="0"){
            request.setAttribute("chaxun",chaxun);
            request.getRequestDispatcher("queryone.html").forward(request,response);
            /*
            HttpSession session=request.getSession();
            session.setAttribute("chaxun",chaxun);

             */



            //response.sendRedirect("queryone.html");




        }else if(selct.equals("all")){
            request.getRequestDispatcher("queryall.html").forward(request,response);
        }else if(selct.equals("no")&&radio!="c"){
            /*
            HttpSession session=request.getSession();
            session.setAttribute("radio",radio);

             */
            request.setAttribute("radio",radio);
            request.getRequestDispatcher("querysomesp.html").forward(request,response);
            //                     request.getRequestDispatcher 的路径解析规则如下：
// 如果路径是 相对路径（不以 / 开头），它会基于当前请求的路径进行解析。
// 如果路径是 绝对路径（以 / 开头），它会从当前 Web 应用的上下文根（context root）开始解析。
//           在 Java Web 应用中，路径解析是基于 webapp 目录的，而不是基于源代码文件的物理位置。这是因为：
//webapp 目录 是 Web 应用的根目录，所有静态资源（如 HTML、CSS、JS 文件）和动态资源（如 JSP 文件）都放置在这个目录下。
//java 目录 是源代码目录，用于存放 Java 源文件。这些文件在编译后会被部署到 WEB-INF/classes 目录下，但它们的路径不会直接影响静态资源的访问。
//            路径解析的起始点：
//            路径解析是从 webapp 目录开始的，而不是从 java/servlet 目录开始。
//            这是因为 webapp 是 Web 应用的根目录，所有资源的访问都是基于这个目录的。
//            相对路径解析：
//            querysomesp.html 是一个相对路径，表示从 webapp 目录开始查找。
//            因此，querysomesp.html 会被解析为 /querysomesp.html，成功找到文件。
//            绝对路径解析：
//            如果你使用绝对路径 /querysomesp.html，它也会被解析为 /querysomesp.html，因为绝对路径总是从 webapp 目录开始。
//            通俗易懂的解释
//            webapp 目录 是 Web 应用的“家”。
//            java 目录 是源代码的“家”，但它的路径不会影响 Web 资源的访问。
//            当你在代码中使用相对路径或绝对路径时，路径解析总是从 webapp 目录开始，而不是从源代码的物理位置开始。
        }
        else if(selct.equals("no")&&radio=="c"){
            response.sendRedirect("queryall.html");
        }else {
            System.out.println(selct);
        }

    }
}
